package zhu.yu.demo1;

/*
    对于功能类似的方法来说，因此参数列表不一样，却需要记住那么多不同的方法名称，太麻烦。

    方法的重载(Overload)：多个方法的名称一样（区分大小写的），但是参数列表不一样
    好处：只要记住唯一一个方法名称，就可以实现类似的多个功能


方法重载与下列因素相关（条件）：
    1. 参数个数不同（可以有0个-n个）
    2. 参数类型不同
    3. 参数的多类型顺序不同
    (参数列表不同)


方法重载与下列因素无关（报错）：
    1. 与参数的名称无关
    2. 与方法的返回值类型无关
    2. 与修饰符无关( public、static)

// 在调用输出语句的时候，println方法其实就是进行了多种数据类型的重载形式
*/
public class Demo1MethodOverload {
    public static void main(String[] args) {
       System.out.println(sunFour(1, 2, 3));  // 三个参数的方法
       System.out.println(sunFour(1, 2, 3, 4));  // 四个参数的方法
    }
    public static int sum(int a, int b) {
        return a+b;
    }
    public static int sum(double a, double b) {
        return (int) (a+b);
    }
    public static int sunFour(int a, int b, int c) {
        return a+b+c;
    }
    public static int sunFour(int a, int b, int c, int d) {
        return a+b+c+d;
    }
}
